#ifndef __GAME_H__
#define __GAME_H__

#include "Device.h"
#include "SchoolBattle.h"
#include "Macro.h"
#include "GameDesign.h"
#include "GameState/GameState.h"
#include <list>

class Game
{
public:
	Game();
	~Game();

	static SchoolBattle* GetInstance(){ return m_SB;}
	static Device* GetDevice(){return m_D;}

	void Run();

	static GameState* GetState(){return m_StateList.front();}
	static void SetState(GameState* newState);
	static void PushState(GameState* newState);
	static void PopState();
	static void Exit();

public:
	static bool isUpdateCalled;
private:
	static SchoolBattle* m_SB;
	static Device* m_D;
	static GameState* m_PrevState;
	static std::list<GameState*> m_StateList;
	
};

#endif